#include <memory.h> Требуется только для об-
#include <string.h> явления функции, использует
либо <string.h>, либо
<memory.h>
void movedata (srcseg, srcoff, destseg, destoff, nbytes);
int srcseg; адрес исходного сегмента
int srcoff; смещение исходного сегмента
int destseg; адрес результирующего сегмента
int destoff; смещение результирующего сегмента
unsigned nbytes; количество байтов
Описание.
Функция movedata копирует nbytes байтов, начиная с исходного адреса, обозначенного srcseg:srcoff , в адрес результата, обозначенный destseg:destoff . Функция movedata предназначена для пересылки far -данных в программах малых или средних моделей, где адреса сегментов данных не известны. В программах больших моделей может быть использована функция memcpy , когда адреса сегментов известны.
Возвращаемое значение.
Возвращаемого значения нет.
Замечание!
Значения сегментов для аргументов srcseg и destseg могут быть получены с помощью применения либо функции segread , либо макроопределения FR_SEG.
Функция movedata не обрабатывает все случаи пересылок с перекрытием корректно (пересылки с перекрытием происходят тогда, когда часть результирующего поля является в этой же области памяти частью исходного). Пересылки с перекрытием корректно обрабатываются функцией memcpy.
Пример:
#include <memory.h>
#include <dos.h>
char far *src;
char far *dest;
.
.
.
/* следующие операторы пересылают 512
** байтов данных из src в dest. */
movedata (FP_SEG (src), FPSEG(dest),
FP_OFF(dest), 512);